home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 1 / Meeting Pearls Vol 1 (1994).iso / installed_progs / text / faqs / modula-3-faq < prev    next >
Encoding:
Internet Message Format  |  1994-04-09  |  22.8 KB

  1. Subject: Modula-3 Frequently Asked Questions (FAQ)
  2. Newsgroups: comp.lang.modula3,news.answers,comp.answers
  3. From: Eric Muller <muller@src.dec.com>
  4. Date: 8 Apr 1994 15:42:38 GMT
  5.  
  6. Archive-name: Modula-3-faq
  7. Last-modified: Feb 3 1994
  8.  
  9.  
  10.          Modula-3 Frequently Asked Questions
  11.          ===================================
  12.  
  13.  
  14. 1. The language
  15.     1.1 What is Modula-3?
  16.     1.2 Is Modula-3 a superset of Modula-2?
  17. 2. The documentation
  18.     2.1 Where can I get a description of Modula-3? 
  19.     2.2 Where can I get other information on Modula-3?
  20. 3. The implementations
  21.     3.1 Where can I get an implementation?
  22.     3.2 What is SRC Modula-3?
  23.     3.3 What is m3pc?
  24.     3.4 What is GNU Modula-3?
  25. 4. Some specific questions
  26.         4.1 Why is "Hello World" so large?
  27.         4.2 Why objects and interfaces?
  28.     4.3 What is the story with Trestle and OpenWindows?
  29.         4.4 When is the next release of SRC Modula-3 ?
  30. 5. FTP
  31.     5.1 What if I don't have ftp access?
  32. 6. Contributing
  33.     6.1 Can I contribute Modula-3 software?
  34.  
  35.  
  36.  
  37.  
  38. 1.1. What is Modula-3?
  39.  
  40.    Modula-3 is a systems programming language that descends from Mesa,
  41.    Modula-2, Cedar, and Modula-2+.  It also resembles its cousins
  42.    Object Pascal, Oberon, and Euclid.
  43.  
  44.    The goal of Modula-3 is to be as simple and safe as it can be while
  45.    meeting the needs of modern systems programmers.  Instead of
  46.    exploring new features, we studied the features of the Modula
  47.    family of languages that have proven themselves in practice and
  48.    tried to simplify them into a harmonious language.  We found that
  49.    most of the successful features were aimed at one of two main
  50.    goals: greater robustness, and a simpler, more systematic type
  51.    system.
  52.  
  53.    Modula-3 retains one of Modula-2's most successful features, the
  54.    provision for explicit interfaces between modules.  It adds objects
  55.    and classes, exception handling, garbage collection, lightweight
  56.    processes (or threads), and the isolation of unsafe features.
  57.  
  58.  
  59. 1.2. Is Modula-3 a superset of Modula-2?
  60.  
  61.    No; valid Modula-2 programs are not valid Modula-3 programs.  However,
  62.    there is a tool to help convert Modula-2 programs to Modula-3.
  63.  
  64.  
  65. 2.1. Where can I get a description of Modula-3? 
  66.    
  67.    The definition of Modula-3 is contained in:
  68.  
  69.         System Programming with Modula-3
  70.         Edited by Greg Nelson
  71.         Prentice Hall Series in Innovative Technology
  72.         ISBN 0-13-590464-1
  73.         L.C. QA76.66.S87 1991
  74.  
  75.    also known as SPwM3.  Here is the table of contents:
  76.  
  77.         1. Introduction
  78.         2. Language Definition
  79.         3. Standard Interfaces
  80.         4. An Introduction to Programming with Threads
  81.         5. Thread Synchronization: A Formal Specification
  82.         6. I/O Streams: Abstract Types, Real Programs
  83.         7. Trestle Window System Tutorial
  84.         8. How the Language Got its Spots
  85.  
  86.    Chapters 2 and 3 have been reprinted in Sigplan Notices, Volume 27,
  87.    Number 8, August 1992, pp 15-42.
  88.  
  89.    Sam Harbison has written a more tutorial book about Modula3:
  90.  
  91.         Modula-3
  92.         Samuel P. Harbison
  93.         Prentice Hall, 1992
  94.         ISBN 0-13-596396-6
  95.  
  96.    The errata sheet is available via anonymous ftp from gatekeeper.dec.com 
  97.    in pub/DEC/Modula-3/errata.
  98.  
  99.  
  100. 2.2. Where can I get other information on Modula-3?
  101.  
  102.    There is a Usenet newsgroup, comp.lang.modula3.  The archives of
  103.    that group are available via anonymous ftp from gatekeeper.dec.com
  104.    in pub/DEC/Modula-3/comp.lang.modula3.  If you do not have
  105.    access to Usenet, there is a relay mailing list; send a message to
  106.    m3-request@src.dec.com to be added to it.
  107.  
  108.    There are a couple high-level overview articles available:
  109.  
  110.        "Modula-3", Sam Harbison, Byte, Vol. 15, No. 12, November 1990,
  111.        pp 385+.
  112.  
  113.        "Safe Programming with Modula-3", Sam Harbison, Dr. Dobb's Journal,
  114.        Vol. 17, No. 10, October 1992, pp 88+.
  115.  
  116.    A description of the Modula-3 type system is in
  117.  
  118.        "The Modula-3 Type System", Luca Cardelli, Jim Donahue, Mick Jordan,
  119.        Bill Kalsow, Greg Nelson, Conference Record of the Sixteenth Annual
  120.        ACM Symposium on Principles of Programming Languages (POPL), Austin
  121.        Texas, January 11-13 1989, pp 202-212.
  122.  
  123.    The Modula-3 treatment of floating-point values is described in
  124.  
  125.        "The Design of Floating-Point Data Types", David Goldberg,
  126.        ACM Letters on Programming Languages and Systems (LOPLAS),
  127.        June 1992, Vol 1, #2, pp 138-151
  128.  
  129.    The core library interfaces are described and indexed in
  130.  
  131.        "Some Useful Modula-3 Interfaces", Jim Horning, Bill Kalsow,
  132.        Paul McJones, Greg Nelson, SRC Research Report 113.
  133.        Available vi anonymous FTP from gatekeeper.dec.com in
  134.        pub/DEC/SRC/research-reports/SRC-113.ps.Z 
  135.  
  136.    The Trestle window system toolkit, higher-level FormsVBT toolkit, and
  137.    Zeus animation system available with Modula-3, are documented in the
  138.    following reports:
  139.  
  140.        "Trestle Reference Manual", Mark S. Manasse and Greg Nelson,
  141.        SRC Research Report 68, December 1991.
  142.  
  143.        "Trestle Tutorial", Mark S. Manasse and Greg Nelson, SRC Research
  144.        Report 69, May 1, 1992.
  145.  
  146.        "VBTkit Reference Manual: A toolkit for Trestle", edited by
  147.        Marc H. Brown and James R. Meehan.  (soon to be a SRC Research
  148.        Report)  A draft version is available via anonymous FTP from
  149.        gatekeeper.dec.com in pub/DEC/Modula-3/contrib/vbtkit.25Mar93.ps.Z.
  150.  
  151.        "The FormsVBT Reference Manual", Marc H. Brown and James R. Meehan,
  152.        (soon to be a SRC Research Report).  A draft version is available
  153.        via anonymous FTP from gatekeeper.dec.com in
  154.        pub/DEC/Modula-3/contrib/formsvbt.25Mar93.ps.Z and
  155.        pub/DEC/Modula-3/contrib/formsvbt.AppC.26Mar93.ps.Z.
  156.  
  157.        "Zeus: A System for Algorithm Animation and Multi-View Editing",
  158.        Marc H. Brown, SRC Research Report 75, February 28, 1992.
  159.        Available via anonymous FTP from gatekeeper.dec.com in
  160.        pub/DEC/SRC/research-reports/SRC-075*.ps.Z.
  161.  
  162.        "Color and Sound in Algorithm Animation", Marc H. Brown and
  163.        John Hershberger, SRC Research Report 76a, August 30, 1991.
  164.        Available via anonymous FTP from gatekeeper.dec.com in
  165.        pub/DEC/SRC/research-reports/SRC-076a*.ps.Z.
  166.  
  167.        "The 1992 SRC Algorithm Animation Festival", Marc H. Brown, 
  168.        SRC Research Report 98, March 27, 1993.  Available via anonymous ftp
  169.        from gatekeeper.dec.com in 
  170.        pub/DEC/SRC/research-reports/SRC-098*.ps.Z.
  171.  
  172.    Hardcopy versions of these reports can be ordered by e-mail; send your
  173.    request including a postal mail address to src-reports@src.dec.com.
  174.  
  175.    Sedgewick's classic text on computer algorithms is presented
  176.    in Modula-3 in:
  177.  
  178.         Alogorithms in Modula-3
  179.         Robert Sedgewick
  180.         Addison-Wesley, 1993
  181.         ISBN 0-201-53351-0
  182.  
  183. 3.1. Where can I get an implementation?
  184.  
  185.    Two implementations are available, SRC Modula-3 and a
  186.    PC version of it (m3pc).
  187.  
  188.    Apparently work on GNU Modula-3 has stopped.
  189.  
  190.    As far as we know, implementations are not available for VMS, Macintosh,
  191.    or Alpha AXP/OSF.
  192.  
  193.  
  194. 3.2. What is SRC Modula-3?
  195.  
  196.    SRC Modula-3 was built by the DEC Systems Reseach Center
  197.    and is available via anonymous ftp from gatekeeper.dec.com in
  198.    pub/DEC/Modula-3/release.
  199.  
  200.    The current version, 2.11, implements the language defined in SPwM3.
  201.    There are versions for the following machines:
  202.  
  203.         AIX386  IBM PC running AIX/PS2,
  204.         AP3000  Apollo DN4500 running Domain/OS
  205.         ARM     Acorn R260 running RISC iX 1.21
  206.         DS3100  DECstation 3100 and 5000 running Ultrix 4.0 and 4.2
  207.         HP300   HP 9000/300 running HP-UX 8.0
  208.     HPPA    HP 700/800 running HP-UX 8.0
  209.         IBMR2   IBM R6000 running AIX 3.1, 
  210.         IBMRT   IBM RT running IBM/4.3, 
  211.         NEXT    NeXT running ??
  212.     OKI     Okidata 7300 (i860) running AT&T SVR4.0
  213.         SPARC   SPARCstation running SunOS 4.1.x
  214.         SUN3    SUN3 running SunOS
  215.     SUN386  Sun 386i  running SunOS 4.0.1
  216.         UMAX    Encore Multimax running UMAX 4.3 (R4.1.1)
  217.         VAX     VAX running Ultrix 3.1
  218.  
  219.    SRC Modula-3 includes a user manual, compiler, runtime library,
  220.    some libraries and a few other goodies (see below).
  221.  
  222.    The compiler generates C as an intermediate language and should be
  223.    fairly easy to port.  Except for the very lowest levels of the
  224.    thread implementation, the entire system is written in Modula-3.
  225.  
  226. 3.3. What is m3pc?
  227.  
  228.    m3pc is available via anonymous ftp from gatekeeper.dec.com in
  229.    pub/DEC/Modula-3/contrib/m3pc.
  230.  
  231.    ---------
  232.  
  233.    From: laszlo@post.ifi.uni-klu.ac.at (Prof.Dr.Laszlo BOESZOERMENYI)
  234.    Subject: M3 pn PC
  235.  
  236.    The Modula-3 system ported by us on the PC and available on the
  237.    gatekeeper, runs with MSDOS, gnu c compiler and djgpp memory
  238.    manager (detailed description in the read me file).
  239.  
  240.    The first version was ported by Klaus Preschern. Carsten Weich rewrote
  241.    the handling of long filenames for the second version.
  242.  
  243.    You may compile, link and run Modula-3 programs, without threads.
  244.    From the library modules only those are tested which are used by
  245.    the compiler.  We are using the actual version for our beginners-course
  246.    and we are working on "student-friendly" programming environmnents and
  247.    a simple windowing graphic-library.
  248.  
  249.    ---------
  250.  
  251.    From: carsten@post.ifi.uni-klu.ac.at (Carsten WEICH)
  252.    Subject: New version of Modula-3/PC
  253.    Date: 28 Jan 1994 13:25:28 GMT
  254.  
  255.    We have built a new version of Modula-3 running on a PC.
  256.    You will need a PC:
  257.      *  80486 or 80386 with floatingpoint-coprocessor,
  258.      *  at least 4 but preferable 8 MByte of RAM,
  259.      *  20 MByte discspace free at least.
  260.  
  261.    You can run a modified Modula-3 version 2.09 without thread-
  262.    support. Our version features:
  263.      *  support for Unix-like long filenames
  264.      *  automatic compilation (to substitute the lack of m3make)
  265.      *  library to access DOS-files and directories.
  266.  
  267.    We have built a little shell which translates the long filenames you
  268.    type in into DOS-filenames. It has a unix-lookalike "ls"-command.
  269.    There are commands to teach the system new long filenames.
  270.    You can savely move such files around through DOS-directories
  271.    (which was not possible with the first version).
  272.  
  273.    This version accesses DOS-files significantly faster than the first
  274.    version. Especially linking large Modula-3 programs is much faster
  275.    now. On a 50 MHz 80486 with 16 MByte of RAM we measured
  276.    a turn-around time of 2 minutes for a 5 module, 500 lines program.
  277.    If you want to compile only one module you will have to wait
  278.    about one minute.
  279.  
  280.    The necessary files are available at "gatekeeper.dec.com" in
  281.    /pub/DEC/Modula-3/contrib/m3pc:
  282.  
  283.     Install.txt    please read this first!
  284.     djgpp.tar    the DJGPP-gnu-C-compiler
  285.     m3.tar        compiler binaries
  286.     m3src.tar    sources of the compiler (optional)
  287.     tar.exe        program to unpack these files
  288.  
  289.  
  290. 3.4. What is GNU Modula-3?
  291.  
  292.    From: hudson@cs.umass.edu (Rick Hudson)
  293.    Subject: Re: Where to start - GNU M3 status.
  294.    Date: 02 Mar 1994 20:53:10 GMT
  295.  
  296.    I put in as much time as anyone on the GM3 project and have it wired up and
  297.    sort of running on my desk well enough to do run experiments. Unfortunately,
  298.    it is in no shape for prime time. No threads and 20% of the SRC libraries
  299.    don't even compile. Work slowed in July due to me switching projects and
  300.    pretty much halted when it became obvious that SRC was doing such a good job
  301.    on their compiler.
  302.  
  303.    We are porting pieces of our backend and runtime into the SRC stuff but it
  304.    is just for internal research use since that is all we really have time for.
  305.    Cheers,
  306.  
  307.    ---------
  308.  
  309.    From: moss@cs.cmu.edu (Eliot Moss)
  310.    Subject: GNU Modula-3 alpha release status
  311.    Date: 25 Mar 93 17:53:12 GMT
  312.  
  313.    We said we'd try to get the initial (alpha) release of GNU
  314.    Modula-3 out some time this month (March), and we're in the
  315.    process of figuring out what to release and how to package it
  316.    up. We expect to have something in roughly two weeks (watch
  317.    this space for a notice).
  318.  
  319.    What would this be? First, it is a compiler for the VAX (only)
  320.    under Ultrix (only), definitely without threads, and probably
  321.    still failing a small number of the tests in the SRC test
  322.    suite (which implies that not all of libm3 is likely to work
  323.    either). The actual release information will detail more about
  324.    what's working and what's not at that time. We DO currently
  325.    pass all the compiler tests that the SRC compiler did when it
  326.    was first released (i.e., the ones we fail are more obscure
  327.    things that users uncovered over time).
  328.  
  329.    Second, the release itself will be a compressed tar file
  330.    including sources and executables. The executables will
  331.    probably work only if you put libraries, etc., in the expected
  332.    places (otherwise, you'll need to rebuild from sources).The
  333.    compiler is written in C and should be compiled with a recent
  334.    version of gcc (so you'll need gcc installed). The system also
  335.    uses gld (the GNU linker).
  336.  
  337.    This release should be most useful to people undertaking ports
  338.    to other machines and operating systems, since it will give
  339.    them a head start on understanding the compiler and getting
  340.    the full system ready. It may be of some use for ordinary
  341.    programming, but it really depends on whether you tend to use
  342.    features that tickle the remaining bugs. We are indeed
  343.    interested in alpha test reports, but only if they tell us
  344.    something new (i.e., we'll provide a list of known
  345.    deficiencies).
  346.  
  347.    When the release is made, we'll also start email discussions
  348.    with the various parties who have indicated they might
  349.    undertake ports, to help sort out who will do what.
  350.  
  351.    Regards, and thanks for your continued interest and
  352.    encouragement -- EM
  353.  
  354.    ---------
  355.  
  356.    From: moss@cs.cmu.edu (Eliot Moss)
  357.    Subject: GNU Modula-3 pre-release
  358.    Date: Wed, 5 May 1993 23:49:33 GMT
  359.  
  360.    At long last, the GNU Modula-3 project has a pre-release ready, for
  361.    the VAX/Ultrix platform ONLY. Various folks had notified us of
  362.    their interest in doing ports or alpha testing, and they have
  363.    already been sent email with particulars on how to obtain the tar
  364.    file, etc. There are a number of known bugs; I'll see about making
  365.    a list available by ftp or something, for interested parties.
  366.  
  367.    It is our opinion that the prerelease is not mature enough for
  368.    general use, but we wished to give a head start to those folks
  369.    attempting ports, and we will make periodic patches available. If
  370.    you want to use this compiler for serious program development or
  371.    need something solid with debugging support for classroom use, you
  372.    should wait until we've fixed more of the problems. (But to give a
  373.    sense of what we HAVE accomplished, as I recall, all but 3 of the
  374.    SRC compiler tests compile (there are 137 of them).) We hope to do
  375.    a more general release, and support more platforms, in the summer.
  376.  
  377.    If you're interested in helping and have not previously contacted
  378.    us, please send email to me and/or Rick Hudson
  379.    (hudson@cs.umass.edu).
  380.  
  381.    Thanks to Digital and SRC for supporting us, and to Rick Hudson, Amer Diwan,
  382.    and Norm Walsh, the guys who do all the hard work!
  383.  
  384.  
  385. 4.1. Why is "Hello World" so large?
  386.  
  387.    Modula-3 programs are larger than C programs for the following reasons:
  388.  
  389.      1) The fixed runtime is substantially larger.  It contains a
  390.         garbage collector, a thread runtime, and exception support.
  391.         Note that "Hello World" is virtually all runtime.  For
  392.         larger programs the runtime is not an issue.
  393.  
  394.      2) The generated code includes runtime checks for out-of-bound
  395.         array references and NIL pointer.  Many of these checks could
  396.         be removed by a better compiler.  The current compiler is
  397.         only a research prototype.
  398.  
  399.      3) The compiler generates C code as its intermediate language
  400.         consequently the final machine code suffers.  For example,
  401.         the compiler is constantly storing single-precision floating
  402.         point values into memory to get around C's predisposition
  403.         for double precision.
  404.  
  405. 4.2. Why objects and interfaces?
  406.  
  407.    Allan Heydon on comp.lang.modula3,  May 4th 1993:
  408.  
  409.    Modula-3 provides two separate mechanisms for data-hiding: one for 
  410.    hiding details about how interfaces are implemented, and the other 
  411.    for hiding details about how objects are implemented.
  412.  
  413.    The first data-hiding mechanism is realized by the distinction between 
  414.    interfaces and modules. Clients can only import interfaces, so the 
  415.    names declared in the modules implementing those interfaces are hidden 
  416.    from clients. Note that this mechanism has only two levels; a name 
  417.    is either declared in an interface, or it isn't. If a name is only 
  418.    declared in a module, it can't be used by a client. 
  419.  
  420.    The second data-hiding mechanism is realized by opaque types and 
  421.    revelations. A Modula-3 interface may declare an object type to be 
  422.    opaque, in which case only a subset of the fields and methods of 
  423.    that object are revealed to clients importing the interface. Furthermore, 
  424.    the Modula-3 revelation mechanism allows a designer to reveal successively 
  425.    more fields and methods of an object in a series of interfaces. The 
  426.    fields and methods visible to a client then depends on which interfaces 
  427.    the client imports. 
  428.  
  429.    The latter mechanism is quite flexible. As opposed to the interface/module 
  430.    data-hiding mechanism, opaque types allow you to define an arbitrary 
  431.    number of levels at which more and more information about the implementation 
  432.    of your object is revealed. 
  433.  
  434.    See Sections 2.2.10, 2.4.6, and 2.4.7 of "Systems Programming with 
  435.    Modula-3" for more information about opaque types and about partial 
  436.    and complete revelations. 
  437.  
  438. 4.3. What is the story with Trestle and OpenWindows?
  439.  
  440.    Mark Manasse says: 
  441.  
  442.    I think that the OpenWindows release should be enough (no need to 
  443.    get the MIT X release], although there are a few things in Trestle
  444.    that trigger devastating bugs in OpenWindows. But the only library
  445.    we depend on is Xlib, R4 or later.
  446.  
  447.    The main thing I know that crashes OW 2.0 is the code where we call 
  448.    GrabKey specifying AnyKey.  You can either loop over all of the 
  449.    keys, or you can just comment out the call; programs won't run exactly 
  450.    the same, but you probably won't notice the difference.
  451.  
  452.  
  453. 4.4 When is the next release of SRC Modula-3 ?
  454.  
  455.   The next release will be 3.1.  Here are some of the new things you will
  456.   find in it:
  457.   
  458.   1. the compiler has a new internal interface between the front-end and
  459.      the back-end, M3CG.  This interface is supposed to be easy to
  460.      implement.
  461.   
  462.   2. the front-end can compute in the target arithmetic system; in particular
  463.      it is possible to cross-compile to machines with larger integers than
  464.      the host.
  465.   
  466.   3. one back-end has been implemented on top of gcc.  The implementation of
  467.      M3CG interface generates the tree representation used internally in gcc.
  468.      From the gcc point of view, this back-end looks like a new front-end.
  469.      Using this back-end, we have cross-compiled solitaire for mips, alpha and
  470.      386 processors; there is no reason to believe that there would be a
  471.      problem for the other architectures supported by gcc.
  472.   
  473.   4. Dave Hanson wrote another implementation of the M3CG that is
  474.      self-contained. He is currently working on the 386 code generation (he
  475.      has done the mips code generation already).
  476.   
  477.   5. gdb has been modified to understand Modula-3 debugging information
  478.      produced by the back-ends.  gdb can now parse Modula-3 expressions, print
  479.      Modula-3 values and evaluate some of the Modula-3 built-in operations.
  480.      There is also a little bit of support for multi-threaded programs (you
  481.      can look at the stacks of other threads).
  482.   
  483.   6. there is a replacement for m3make, m3build, that does not rely on
  484.      cpp/awk/sed/make and what not, and removes some of the limitations of
  485.      m3make.  m3makefiles are very similar.
  486.   
  487.   7. libm3 has been significantly changed by the Interface Police, mostly in
  488.      the area of OS interfaces and data structures.
  489.   
  490.   8. for the OS interfaces, we still have the U* interfaces, but applications
  491.      are not supposed to use those.  Instead they should use a new set of
  492.      interfaces that are os-independent; for example, there is a Pathname
  493.      interface that manipulates file names; there is a Process interface that
  494.      manipulate child processes.  These interfaces enabled a prototype port
  495.      of the C based version to Windows NT machines.
  496.   
  497.   9. for the data structures, generics have been introduced and the various
  498.      data structures are more consistent.
  499.   
  500.   10. because of 6 and 8, we can think about going to different os than Unix.
  501.       In particular a Windows NT port will be available at some point (may not
  502.       be in 3.0).
  503.   
  504.   11. the runtime has been improved quite a bit.
  505.   
  506.   12. new platforms: Alpha running OSF/1, 386 running Linux.  We will pay
  507.       more attention to the porting instructions and support.
  508.   
  509.   13. I am not sure about all the changes in the libraries other than
  510.       libm3.  I suspect that there will be few changes in trestle, but that
  511.       mentor changed quite a bit. 
  512.   
  513.   14. The Windows NT port uses native threads.  This should be a good model
  514.       for other implementations of Thread using native threads.
  515.  
  516.   The current status is:
  517.   . the front-end is very stable
  518.   . the gcc-based back-end has been stable for 4 months
  519.   . the gdb extensions are brand new and need some test
  520.   . the interface police work is very stable
  521.   . we are working on bringing the system up on the machines we have in the
  522.     building, and building the export machinery.
  523.   
  524.   We don't have a date for the 3.1 release.  Given the amount of changes
  525.   introduced by 3.1, I suspect that the first few releases will not work out
  526.   of the box for any machine but the ones for which we can test (decstations
  527.   [mips and alpha], linux).  Consequently, I expect a high rate of releases
  528.   for a while.  We will try to post accurate information about the status of
  529.   each machine, but we can only rely what you tell us.
  530.   
  531.   At this point, I would not encourage anybody to start a new port.  If you
  532.   have a new port, or are close to complete one, you can send us your bits,
  533.   we will try to put them in 3.1.
  534.   
  535.   
  536. 5.1. What if I don't have ftp access?
  537.   
  538.    Unfortunately, we cannot deliver Modula-3 other than by 
  539.    anonymous ftp.  
  540.  
  541.    Fortunately, Prime Time Freeware (PTF) includes Modula-3.  PTF is
  542.    a set of two ISO-9660 CDroms filled with 3GB of freeware, issued
  543.    semi-annually.  The latest issue, Volume 1, Number 2, July 1992,
  544.    contains SRC Modula-3 2.07.  PTF is distributed via bookstores and
  545.    mail.  You can reach PTF using:
  546.  
  547.     Email:  ptf@cfcl.com
  548.         Fax:    [1] (408) 738 2050
  549.         Voice:  [1] (408) 738 4832
  550.         Mail:   Prime Time Freeware
  551.              415-112 N. Mary Ave., Suite 50
  552.         Sunnyvale, CA 94086
  553.             USA
  554.  
  555. 6.1. Can I contribute Modula-3 software?
  556.  
  557.    Certainly.  Send us what you are willing to share, be it programs,
  558.    libraries or other things.  We'll put them in the distribution.
  559.  
  560.    Right now, the pub/DEC/Modula-3/contrib directory contains:
  561.  
  562.       m3rpc   an rpc system from Xerox Parc
  563.       M2toM3  a translator from Modula-2 to Modula-3
  564.       m3pc    an implementation of Modula-3 for PCs.
  565.    
  566. ----
  567. Eric.
  568.  
  569.